package com.chenfan.mcn.model.dto;

import com.chenfan.common.extension.validation.groups.Modify;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 直播商品信息保存
 * @author wulg
 * @date 2023/3/13
 */
@Data
public class LiveCommodityInfoSaveDTO implements Serializable  {

    private static final long serialVersionUID = 2876209742401736341L;

    @NotNull(message = "【直播商品主键ID】不能为空", groups = {Modify.class})
    private Long id;

    /**
     * 商品ID
     */
    @NotNull(message = "【商品ID】不能为空")
    @Size(max = 20, message = "【商品ID】长度不能超过{max}个字符")
    private String commodityId;

    /**
     * 商品名称
     */
    @NotBlank(message = "【商品名称】不能为空")
    @Size(max = 50, message = "【商品名称】长度不能超过{max}个字符")
    private String commodityName;

    /**
     * 直播时间
     */
    @NotNull(message = "【直播时间】不能为空")
    private Date liveDate;


    /**
     * 直播平台
     */
    @NotBlank(message = "【直播平台】不能为空")
    private String livePlatform;


    /**
     * 主播ID
     */
    @NotNull(message = "【主播ID】不能为空")
    private Long anchorId;


    /**
     * 招商ID（取EOP启用中的用户ID）
     */
    @NotNull(message = "【招商】不能为空")
    private Long franchiserId;

    /**
     * 客户名称
     */
    @NotBlank(message = "【客户名称】不能为空")
    private String customerName;
    /**
     * 品牌（数据字典）
     */
    @NotNull(message = "【品牌】不能为空")
    private String cooperateBrand;

    /**
     * 品牌类目（取自liveContractCategory）
     */
    @NotNull(message = "【品牌类目】不能为空")
    private String liveContractCategory;

    /**
     * 成交件数（原销售数量）
     */
    @NotNull(message = "【成交件数】不能为空")
    @DecimalMin(value = "0")
    @Digits(integer = 10, fraction = 0, message = "【成交件数】数值必须大于等于0且小于等于{integer}位的整数")
    private BigDecimal saleQty;

    /**
     * 成交单价
     */
    @NotNull(message = "【成交单价】不能为空")
    @DecimalMin(value = "0.00")
    @Digits(integer = 10, fraction = 2, message = "【成交单价】数值必须大于等于0，其中整数位最多{integer}位，小数位最多{fraction}位")
    private BigDecimal transactedPrice;

    /**
     * 成交金额
     */
    @NotNull(message = "【成交金额】不能为空")
    @DecimalMin(value = "0.00")
    @Digits(integer = 10, fraction = 2, message = "【成交金额】数值必须大于等于0，其中整数位最多{integer}位，小数位最多{fraction}位")
    private BigDecimal transactedAmount;

    /**
     * 备注
     */
    @Size(max = 300, message = "【备注】长度不能超过{max}个字符")
    private String remark;

}
